// components/CustomButton/index.js
import { loginApi } from '../../api/user'
// import { loginBySmsApi } from '../../api/user'
import { wxLogin } from '../../utils/common'
import { setUserInfo, getUserInfo } from '../../utils/user'

Component({
  options: {
    styleIsolation: 'isolated'
  },
  /**
   * 组件的属性列表
   */
  properties: {
    isLogin: {
      type: Boolean,
      value: true
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    btnStyle: '',
    // // 展示的按钮类型 1 普通点击按钮 2 获取手机号按钮
    // btnType: 2,
    showLogin: false,
    isAgree: false
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * 获取用户手机号
     */
    async onGetPhoneNumber(e) {
      const [codeEr, code] = await wxLogin()
      if (codeEr) return
      console.log(e, '=====')

      const { errMsg, encryptedData, iv /* code*/ } = e.detail

      if (errMsg === 'getPhoneNumber:ok') {
        const [err, data] = await loginApi({
          encryptedData,
          iv,
          code
        })

        //   const [err, data] = await loginBySmsApi({
        //     phone: '15525732685',
        //     phoneCode: 2023
        //   })
        if (err) return
        setUserInfo(data)
        this.triggerEvent('loginSuccess')
        this.triggerEvent('clickHandle')
        this.setData({
          showLogin: false
        })
        wx.showToast({
          title: '登录成功',
          icon: 'none'
        })
        return
      }
      wx.showToast({
        title: '获取手机号失败',
        icon: 'none'
      })
    },

    /**
     * 暂不登录
     */
    cancelLogin() {
      this.setData({
        showLogin: false
      })
    },

    /**
     * 按钮点击，确认是否登录，未登录，展示弹窗
     */
    buttonClick() {
      const userInfo = getUserInfo()
      if (userInfo) {
        this.triggerEvent('clickHandle')
        return
      }
      this.setData({
        showLogin: true
      })
    },

    /**
     * 跳转用户协议和隐私协议
     */
    jumpUserAgree(e) {
      const type = e.currentTarget.dataset.type
      wx.navigateTo({
        url: `/pages/userAgree/userAgree?type=${type}`
      })
    },

    /**
     * 是否同意授权协议
     */
    onChange(e) {
      this.setData({
        isAgree: e.detail
      })
    },

    /**
     * 用户未同意授权时，进行提示
     */
    agreeTip() {
      wx.showToast({
        title: '请先阅读并同意相关条款',
        duration: 2000,
        icon: 'none'
      })
    }
  }
})
